home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 07 - 1991 / 07.08 Aug 91 / editor4 / editor.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-19  |  2.8 KB  |  102 lines  |  [TEXT/MPS ]

  1. class TEditor : public TApplication {
  2. public:
  3.     pascal TEditor(OSType itsMainFileType);
  4.     virtual pascal struct TDocument *DoMakeDocument(CmdNumber itsCmdNumber);
  5.     pascal void HandleFinderRequest();
  6. #ifdef qDebug
  7.     virtual pascal void IdentifySoftware();
  8. #endif
  9. };
  10.  
  11. class TEditView;
  12.  
  13. class TBoxView : public TTEView {
  14. public:
  15.     pascal struct TCommand *DoMouseCommand(Point *theMouse,
  16.                     EventInfo *info, Point *hysteresis);
  17. #ifdef qDebug
  18.     virtual pascal void Fields(pascal void (*DoToField) (StringPtr fieldName,
  19.                     Ptr fieldAddr, short fieldType, void *link), void *link);
  20. #endif
  21. };
  22.  
  23. class TEditDocument : public TDocument {
  24. public:
  25.     TEditView    *fEditView;
  26.     pascal TEditDocument();
  27.     pascal void DoMakeViews(Boolean forPrinting);
  28.     pascal void DoNeedDiskSpace(long *dataForkBytes, long *rsrcForkBytes);
  29.     pascal void DoRead(short aRefNum, Boolean rsrcExists, Boolean forPrinting);
  30.     pascal void DoWrite(short aRefNum, Boolean makingCopy);
  31.     pascal void Free();
  32.  
  33. #ifdef qDebug
  34.     virtual pascal void Fields(pascal void (*DoToField) (StringPtr fieldName,
  35.                     Ptr fieldAddr, short fieldType, void *link), void *link);
  36. #endif
  37. };
  38.  
  39. class TBox : public TObject {
  40. public:
  41.     Rect    fLocation;
  42.     Boolean    fSelected;
  43.     RgnHandle    fTagRgn;
  44.     Rect    fTL,fTR,fBL,fBR,
  45.             fT,fB,fL,fR;
  46.     pascal TBox(Rect *itsLocation);
  47.     virtual pascal void DrawShape();
  48. #ifdef qDebug
  49.     virtual pascal void Fields(pascal void (*DoToField) (StringPtr fieldName,
  50.                              Ptr fieldAddr, short fieldType, void *link), void *link);
  51. #endif
  52. };
  53.  
  54. class TShape : public TBox {
  55. public:
  56.     short    fPenSize;
  57.     Pattern    fPenPat;
  58.     Pattern    fFillPat;
  59.     pascal TShape(Rect *itsLocation);
  60.  
  61. #ifdef qDebug
  62.     virtual pascal void Fields(pascal void (*DoToField) (StringPtr fieldName,
  63.                              Ptr fieldAddr, short fieldType, void *link), void *link);
  64. #endif
  65. };
  66.  
  67. class TEditBox : public TShape {
  68. public:
  69.     TBoxView        *fBoxView;
  70.     TEditDocument     *fEditDocument;
  71.     
  72.     pascal TEditBox(Rect *itsLocation, 
  73.             TBoxView *itsView, TEditDocument *itsDocument);
  74.     pascal void DrawShape();
  75. #ifdef qDebug
  76.     virtual pascal void Fields(pascal void (*DoToField) (StringPtr fieldName,
  77.                              Ptr fieldAddr, short fieldType, void *link), void *link);
  78. #endif
  79. };
  80.  
  81. class TEditView : public TScroller {
  82. public:
  83.     TEditDocument *fDocument;
  84.     TList    *fShapeList;    // list of shapes (TEditView, boxes)
  85.     pascal void IEditView(TEditDocument *itsDocument);
  86.     pascal void AddShape(TBox *aBox); 
  87.     pascal void DeleteShape();
  88.     pascal void ForEachShapeDo(pascal void (*DoToItem)
  89.                 (TObject *item, void *DoToItem_Staticlink),void *DoToItem_Staticlink);
  90.     pascal void Draw(Rect *area);
  91.     pascal void Free();
  92. #ifdef qDebug
  93.     virtual pascal void Fields(pascal void (*DoToField) (StringPtr fieldName,
  94.                     Ptr fieldAddr, short fieldType, void *link), void *link);
  95. #endif
  96. };
  97.  
  98. // --- global definitions ---
  99.  
  100. typedef pascal void (*DoToObject) (TObject *aObject, void *DoToObject_staticlink);
  101.  
  102.